{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# python元编程\n",
    "所谓元编程就是编写直接生成或操纵程序的程序，例如C++模板给C++语言提供了元编程的能力，模板使C++ 编程变得异常灵活，能实现很多高级动态语言才有的特性。元编程在一定程度上弥补了python在OOP方面的不足，例如抽象类（abc.abstractmethod和ABCMeta元类配合）、final类（元类来限制继承）、@staticmethod、@classmethod等。在python中，元编程体现在以下几个方面：\n",
    "    \n",
    "1、一种以修饰（或修改）已有代码为主 - 装饰器（函数装饰器，类装饰器），见[python装饰器](python装饰器.ipynb)\n",
    " \n",
    "2、一种以创建（或限制）新代码为主 - 元类，本文主要介绍这种元编程\n",
    "> 方式一：使用type(name, bases, dict)直接创建type对象，该对象就是新创建的类；\n",
    "\n",
    "> 方式二：定义元类type的子类，并赋值了\\__metaclass\\__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 方式一"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'__module__': '__main__', 'printX': <function printX at 0x0000000003BB2F98>, '__dict__': <attribute '__dict__' of 'Test' objects>, '__weakref__': <attribute '__weakref__' of 'Test' objects>, '__doc__': None, '__init__': <function __init__ at 0x0000000003BB2E48>}\n",
      "{'__module__': '__main__', 'printX': <function printX at 0x0000000003C24048>, '__dict__': <attribute '__dict__' of 'Test' objects>, '__weakref__': <attribute '__weakref__' of 'Test' objects>, '__doc__': None, '__init__': <function __init__ at 0x0000000003BB2EB8>}\n"
     ]
    }
   ],
   "source": [
    "def __init__(self, x):\n",
    "    self.x = x\n",
    "\n",
    "def printX(self):\n",
    "    print self.x\n",
    "\n",
    "ClassTest = type('Test', (object,), {'__init__': __init__, 'printX': printX})\n",
    "print vars(ClassTest)\n",
    "\n",
    "#等价于\n",
    "\n",
    "class Test(object):\n",
    "    def __init__(self, x):\n",
    "        self.x = x\n",
    "\n",
    "    def printX(self):\n",
    "        print self.x\n",
    "        \n",
    "print vars(Test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 方式二"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mcl: <class '__main__.MetaClass'>\n",
      "Class Name: Test\n",
      "Bases: (<type 'object'>,)\n",
      "Class Attributes {'__module__': '__main__', '__metaclass__': <class '__main__.MetaClass'>, 'method': <function method at 0x0000000003C24198>, '__init__': <function __init__ at 0x0000000003C24278>, 'classAttribute': 'Something'}\n",
      "{'__module__': '__main__', '__metaclass__': <class '__main__.MetaClass'>, '__doc__': None, 'classAttribute': 'Something', '__dict__': <attribute '__dict__' of 'Test' objects>, '__weakref__': <attribute '__weakref__' of 'Test' objects>, 'method': <function method at 0x0000000003C24198>, '__init__': <function __init__ at 0x0000000003C24278>}\n",
      "<class '__main__.MetaClass'>\n",
      "Test\n",
      "<type 'object'>\n"
     ]
    }
   ],
   "source": [
    "#①创建元类type的子类\n",
    "class MetaClass(type):\n",
    "\n",
    "#__new__和__init__选择其一\n",
    "\n",
    "    def __new__(mcl, name, bases, nmspc):\n",
    "        print 'mcl:', mcl\n",
    "        print 'Class Name:', name\n",
    "        print 'Bases:', bases\n",
    "        print 'Class Attributes', nmspc\n",
    "        return type.__new__(mcl, name, bases, nmspc)\n",
    "    \n",
    "#     def __init__(mcl, name, bases, nmspc):\n",
    "#         type.__init__(mcl, name, bases, nmspc)\n",
    "#         print 'mcl:', mcl\n",
    "#         print 'Class Name:', name\n",
    "#         print 'Bases:', bases\n",
    "#         print 'Class Attributes', nmspc\n",
    "\n",
    "class Test(object):\n",
    "\n",
    "    __metaclass__ = MetaClass   #②把元类的子类赋值给__metaclass__，并以创建对象__metaclass__()\n",
    "\n",
    "    def __init__(self):\n",
    "        pass\n",
    "\n",
    "    def method(self):\n",
    "        pass\n",
    "\n",
    "    classAttribute = 'Something'\n",
    "\n",
    "print vars(Test)\n",
    "print Test.__class__\n",
    "print Test.__name__\n",
    "print Test.__base__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABMAAAAMACAIAAABNZ4z7AACAAElEQVR42uzdC1hVdb7/8TWJaIpI\npIaISmleM/E2WmJZ4piBHlEZGYfjlSFETCZRHM3Lgw4dB02LMUfNK4OK4aCzD1pAeAUJOaKioBDI\nKIVaI9OheZgO47//F5btdhtELhtce+/36/k+PIvfXnuDa2/X7/dhXX7K9wAAAAAA1IHCJgAAAAAA\nECABAAAAAARIAAAAAAABEgAAAABAgAQAAAAAECABAAAAAARIAAAAAAAIkAAAAAAAAiQAAAAAgAAJ\nAAAAACBAAgAAAAAIkAAAAAAAAiQAAAAAgAAJAAAAAEA9A6QCAAAAALAgTRsgv//fZIqiKIqiKIqi\nKMoCigBJURRFURRFURRFESApiqIoiqIoiqIoAiRFURRFURRFURRFgKQoiqIoiqIoiqIIkBRFURRF\nURRFURQBkgBJURRFURRFURRFgCRAUhRFURRFURRFUQRIiqIoiqIoiqIoigBJURRFURRFURRFESAp\niqIoiqIoiqIoAiRFURRFURRFURRFgKQoiqIoiqIoiqIIkARIiqIoiqIoiqIoAiQBkqIoiqIoiqIo\niiJAUhRFURRFURRFUQRIiqIoiqIoiqIoigBJURRFURRFURRFESApiqIoiqIoiqIoAiRFURRFURRF\nURRFgCRAUhRFURRFURRFESAJkBRFURRFURRFURQBkqIoiqIoiqIoiiJAUhRFURRFURRFUQRIiqIo\niqIoiqIoigBJURRFURRFURRFESApiqIoiqIoiqIoAiQBkqIoiqIoiqIoigBJgKQoiqIoiqIoiqKa\nJUACAAAAACxGEx+BBABoCXtmAADQbAMJAiQAECABAAADCQIkALDfBwAAIEACANgzAwAAAiQAgD0z\nAAAgQAIACJAAAIAACQAgQAIAAAIkwxRozqRJkzIzM40aV65cWePKpaWlM2fOrMvLJiQk7N69u3p7\n7969v/rqqxqfUlFRof4I9Vv5rfz8/B70+kuXLv3oo49u3bqlPlFdAAiQAEzbwWVlZaldjHRqc+bM\nUVuys7PpvAAQIGGNcnNz27dv/6tf/So5OdmwvVOnTmp3uLrKtGnTblWRXrNv376ysG7duuqvduLE\nCX1f+N57740fP95ohaFDh44YMUJ9TTs7O3k1ox8q7U899ZR0rvLtiy++WP0V3n33XWlcuHChrCm/\n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\nYaALAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import Image\n",
    "Image(filename=u\"..\\images\\python元编程.png\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## python3简化方式\n",
    "class A(object, metaclass = Metaclass):\n",
    "    \n",
    "    ..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 元编程应用"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 其他"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n",
      "True\n",
      "True\n",
      "True\n",
      "<type 'type'>\n",
      "<type 'type'>\n",
      "<class '__main__.A'>\n",
      "B\n",
      "<type 'type'>\n",
      "<type 'type'>\n",
      "<type 'object'>\n",
      "A\n"
     ]
    }
   ],
   "source": [
    "class A(object):\n",
    "    pass\n",
    "class B(A):\n",
    "    pass\n",
    "\n",
    "print isinstance(B(),A)\n",
    "print isinstance(A(),A)\n",
    "print issubclass(B,A)\n",
    "print issubclass(B,object)\n",
    "print type(B)\n",
    "print B.__class__\n",
    "print B.__base__\n",
    "print B.__name__\n",
    "print type(A)\n",
    "print A.__class__\n",
    "print A.__base__\n",
    "print A.__name__"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
